package lovemusic.lanou.com.newsmusic.utils;

import android.content.Context;
import android.os.Handler;
import android.view.View;



import lovemusic.lanou.com.newsmusic.global.MyApplications;

/**
 * UI的一些常用的工具类
 * Created by lanouhn on 16/9/21.
 */
public class UIUtils {

    public static Context getContext(){
        return MyApplications.getmContext();
    }

    public static Handler getHandle(){
        return MyApplications.getmHandler();
    }
    public static int getMainThreadId(){
        return MyApplications.getMainThreadId();
    }

//    加载布局文件
    public static View inflate(int id){
        return View.inflate(getContext(),id,null);
    }

//    屏幕中的dip和dp之间的转换
    public static int dip2px(float dip){
        float density=getContext().getResources().getDisplayMetrics().density;
        return (int) (dip*density+0.5f);
    }
    public static float px2dip(float px){
        float density=getContext().getResources().getDisplayMetrics().density;
        return px/density;
    }

    // /////////////////判断是否运行在主线程//////////////////////////
    public static boolean isRunOnUIThread() {
        // 获取当前线程id, 如果当前线程id和主线程id相同, 那么当前就是主线程
        int myTid = android.os.Process.myTid();
        if (myTid == getMainThreadId()) {
            return true;
        }

        return false;
    }

    // 运行在主线程
    public static void runOnUIThread(Runnable r) {
        if (isRunOnUIThread()) {
            // 已经是主线程, 直接运行
            r.run();
        } else {
            // 如果是子线程, 借助handler让其运行在主线程
            getHandle().post(r);
        }
    }


    /**
     * 定义一个方法用来格式化获取到的时间
     */
    public static String formatTime(int time) {
        if (time / 1000 % 60 < 10) {
            return time / 1000 / 60 + ":0" + time / 1000 % 60;

        } else {
            return time / 1000 / 60 + ":" + time / 1000 % 60;
        }

    }

}
